LockLevel
デフォルトでは、TimesTenは同時実行性を最大にする行レベル・ロックを有効にします。この接続であらゆるトランザクションがデータ・ストアに排他アクセスできるように、LockLevel属性を1に設定してデータ・ストア・レベル・ロックを有効にすることができます。これにより、アプリケーションによってはパフォーマンスが向上する場合もあります。Oracle表をキャッシュするには、行レベル・ロックを設定する必要があります。
ttLockLevel組込みプロシージャをコールすることで、接続でロック・レベルを随時変更できます(「ttLockLevel」を参照)。また、ttLockWait組込みプロシージャをコールすることで、利用できないロックを待機することもできます(「ttLockWait」を参照)。異なる接続は異なるレベルのロックと共存できますが、データ・ストア・レベルのロックを使用する接続が1つでもある場合は、同時性が損なわれます。行レベル・ロックを使用するには、ディスクへのロギングまたはディスクレス・ロギング(「Logging」を参照)が有効である必要があります。特定のデータ・ストアに対するすべてのロックのリストを表示するには、TimesTenユーティリティttXactAdminを使用します(「ttXactAdmin」を参照)。
注意: 行レベル・ロックが有効になっているときは、ディスクへのロギングを有効にすることを強くお薦めします(LockLevelについては
「LockLevel」、Loggingについては
「Logging」を参照)。TimesTenでは、ディスクレス・ロギングが有効な場合にも、行レベル・ロックを使用できます。ただし、この属性を組み合せて使用する場合は細心の注意が必要です。ディスクレス・ロギングでの行レベル・ロックは、ディスクへの書込みを許容できない高性能アプリケーションのために提供されています。ディスクレス・ロギングが有効になっている場合、ログ・レコードは内部ログ・バッファのみに保存されます。TimesTenはログ・バッファをディスクに書き込みません。トランザクションの活動中に内部ログ・バッファの領域がなくなると、ログ・バッファが一杯になったトランザクションはTimesTenによって強制終了されます。ディスクレス・ロギングを有効にしてアプリケーションを実行すると、一部のトランザクションが断続的に強制終了される場合があります。
設定
LockLevelは次のように設定します。
CまたはJavaプログラム 、あるいはUNIX ODBC.INIファイル | LockLevel | 0: トランザクションは行レベル・ロックを使用してデータ・ストアにアクセスします(デフォルト)。 1: トランザクションはデータ・ストア全体の排他ロックを取得してデータ・ストアにアクセスします。 |
Windows ODBCデータソース・アドミニストレータ | 「DS-Level Locking」チェック・ボックス | 選択解除: トランザクションは行レベル・ロックを使用してデータ・ストアにアクセスします(デフォルト)。 選択: トランザクションはデータ・ストア全体の排他ロックを取得してデータ・ストアにアクセスします。 |